﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetMarca : IBusinessLogic
    {
        public GetMarca() { }

        public void Invoke()
        {
            Marca_Select oMarcaSelect = new Marca_Select();
            oMarcaSelect.Marca = this.Marca;
            this.Resultset = oMarcaSelect.Get();
        }

        public List<Marca> MarcaList()
        {
            this.Invoke();

            List<Marca> listaMarca = new List<Marca>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                Marca oMarca;
                foreach (DataRow r in dTable.Rows)
                {
                    oMarca = new Marca();
                    oMarca.IdMarca = Convert.ToInt32(r["idMarca"]);
                    oMarca.Descripcion = r["Descripcion"].ToString();
                    oMarca.Alias = r["Alias"].ToString();
                    oMarca.Orden = Convert.ToInt32(r["Orden"]);
                    oMarca.Activo = Convert.ToBoolean(r["Activo"]);

                    Pais oPais = new Pais();
                    oPais.IdPais = Convert.ToInt32(r["idPais"]);
                    GetPais oGetPais = new GetPais();
                    oGetPais.Pais = oPais;

                    oMarca.Pais = oGetPais.PaisList()[0];

                    listaMarca.Add(oMarca);
                }
            }

            return listaMarca;
        }

        private DataSet _resultset;
        private Marca _marca;

        public Marca Marca
        {
            get { return _marca; }
            set { _marca = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }

    public class GetMarcaTipoProducto : IBusinessLogic
    {
        public GetMarcaTipoProducto() { }

        public void Invoke()
        {
            MarcaTipoProducto_Select oMarcaTipoProductoSelect = new MarcaTipoProducto_Select();
            oMarcaTipoProductoSelect.MarcaTipoProducto = this.MarcaTipoProducto;
            this.Resultset = oMarcaTipoProductoSelect.Get();
        }

        public List<MarcaTipoProducto> MarcaTipoProductoList()
        {
            this.Invoke();

            List<MarcaTipoProducto> listaMarcaTipoProducto = new List<MarcaTipoProducto>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                MarcaTipoProducto oMarcaTipoProducto;
                foreach (DataRow r in dTable.Rows)
                {
                    oMarcaTipoProducto = new MarcaTipoProducto();

                    Marca oMarca = new Marca();
                    oMarca.IdMarca = Convert.ToInt32(r["idMarca"]);

                    GetMarca oGetMarca = new GetMarca();
                    oGetMarca.Marca = oMarca;

                    oMarcaTipoProducto.Marca = oGetMarca.MarcaList()[0];

                    TipoProducto oTipoProducto = new TipoProducto();
                    oTipoProducto.IdTipoProducto = Convert.ToInt32(r["idTipoProducto"]);

                    GetTipoProducto oGetTipoProducto = new GetTipoProducto();
                    oGetTipoProducto.TipoProducto = oTipoProducto;

                    oMarcaTipoProducto.TipoProducto = oGetTipoProducto.TipoProductoList()[0];

                    
                    listaMarcaTipoProducto.Add(oMarcaTipoProducto);
                }
            }

            return listaMarcaTipoProducto;
        }

        private DataSet _resultset;
        private MarcaTipoProducto _marcaTipoProducto;

        public MarcaTipoProducto MarcaTipoProducto
        {
            get { return _marcaTipoProducto; }
            set { _marcaTipoProducto = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
    }
}
